Termination w.r.t. Q of the following Term Rewriting System could not be shown:

Q restricted rewrite system:
The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.


QTRS
  ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.

Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(rcons(X1, X2)) → MARK(X1)
A__PI(X) → A__2NDSPOS(mark(X), a__from(0))
A__TIMES(s(X), Y) → MARK(Y)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(square(X)) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__FROM(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → MARK(Y)
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
QDP
      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(plus(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(rcons(X1, X2)) → MARK(X1)
A__PI(X) → A__2NDSPOS(mark(X), a__from(0))
A__TIMES(s(X), Y) → MARK(Y)
MARK(from(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(square(X)) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__FROM(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
A__PLUS(s(X), Y) → MARK(Y)
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__PI(X) → A__2NDSPOS(mark(X), a__from(0)) at position [1] we obtained the following new rules:

A__PI(y0) → A__2NDSPOS(mark(y0), from(0))
A__PI(y0) → A__2NDSPOS(mark(y0), cons(mark(0), from(s(0))))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
QDP
          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__PI(y0) → A__2NDSPOS(mark(y0), from(0))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
A__PI(y0) → A__2NDSPOS(mark(y0), cons(mark(0), from(s(0))))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(from(X)) → MARK(X)
A__TIMES(s(X), Y) → MARK(Y)
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__FROM(X) → MARK(X)
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
QDP
              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__FROM(X) → MARK(X)
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__PLUS(s(X), Y) → MARK(Y)
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(X1, X2)) → A__2NDSPOS(mark(X1), mark(X2)) at position [0] we obtained the following new rules:

MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(rcons(x0, x1), y1)) → A__2NDSPOS(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(rnil, y1)) → A__2NDSPOS(rnil, mark(y1))
MARK(2ndspos(posrecip(x0), y1)) → A__2NDSPOS(posrecip(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(nil, y1)) → A__2NDSPOS(nil, mark(y1))
MARK(2ndspos(cons(x0, x1), y1)) → A__2NDSPOS(cons(mark(x0), x1), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(0, y1)) → A__2NDSPOS(0, mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(negrecip(x0), y1)) → A__2NDSPOS(negrecip(mark(x0)), mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
QDP
                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndspos(cons(x0, x1), y1)) → A__2NDSPOS(cons(mark(x0), x1), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(0, y1)) → A__2NDSPOS(0, mark(y1))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
MARK(2ndspos(negrecip(x0), y1)) → A__2NDSPOS(negrecip(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(2ndspos(rcons(x0, x1), y1)) → A__2NDSPOS(rcons(mark(x0), mark(x1)), mark(y1))
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(2ndspos(rnil, y1)) → A__2NDSPOS(rnil, mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(posrecip(x0), y1)) → A__2NDSPOS(posrecip(mark(x0)), mark(y1))
MARK(2ndspos(nil, y1)) → A__2NDSPOS(nil, mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
QDP
                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(X1, X2)) → A__2NDSNEG(mark(X1), mark(X2)) at position [0] we obtained the following new rules:

MARK(2ndsneg(rcons(x0, x1), y1)) → A__2NDSNEG(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(cons(x0, x1), y1)) → A__2NDSNEG(cons(mark(x0), x1), mark(y1))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(posrecip(x0), y1)) → A__2NDSNEG(posrecip(mark(x0)), mark(y1))
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(0, y1)) → A__2NDSNEG(0, mark(y1))
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(negrecip(x0), y1)) → A__2NDSNEG(negrecip(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(rnil, y1)) → A__2NDSNEG(rnil, mark(y1))
MARK(2ndsneg(nil, y1)) → A__2NDSNEG(nil, mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
QDP
                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(cons(x0, x1), y1)) → A__2NDSNEG(cons(mark(x0), x1), mark(y1))
MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(nil, y1)) → A__2NDSNEG(nil, mark(y1))
MARK(2ndsneg(rnil, y1)) → A__2NDSNEG(rnil, mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(0, y1)) → A__2NDSNEG(0, mark(y1))
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(rcons(x0, x1), y1)) → A__2NDSNEG(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(posrecip(x0), y1)) → A__2NDSNEG(posrecip(mark(x0)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(negrecip(x0), y1)) → A__2NDSNEG(negrecip(mark(x0)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(from(X)) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
QDP
                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(plus(X1, X2)) → A__PLUS(mark(X1), mark(X2)) at position [0] we obtained the following new rules:

MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(plus(nil, y1)) → A__PLUS(nil, mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(negrecip(x0), y1)) → A__PLUS(negrecip(mark(x0)), mark(y1))
MARK(plus(cons(x0, x1), y1)) → A__PLUS(cons(mark(x0), x1), mark(y1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(plus(rnil, y1)) → A__PLUS(rnil, mark(y1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(rcons(x0, x1), y1)) → A__PLUS(rcons(mark(x0), mark(x1)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(plus(posrecip(x0), y1)) → A__PLUS(posrecip(mark(x0)), mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
QDP
                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(negrecip(x0), y1)) → A__PLUS(negrecip(mark(x0)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(rnil, y1)) → A__PLUS(rnil, mark(y1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(plus(rcons(x0, x1), y1)) → A__PLUS(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(plus(posrecip(x0), y1)) → A__PLUS(posrecip(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(nil, y1)) → A__PLUS(nil, mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(plus(cons(x0, x1), y1)) → A__PLUS(cons(mark(x0), x1), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 6 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
QDP
                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(times(X1, X2)) → A__TIMES(mark(X1), mark(X2)) at position [0] we obtained the following new rules:

MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(times(negrecip(x0), y1)) → A__TIMES(negrecip(mark(x0)), mark(y1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(rnil, y1)) → A__TIMES(rnil, mark(y1))
MARK(times(cons(x0, x1), y1)) → A__TIMES(cons(mark(x0), x1), mark(y1))
MARK(times(rcons(x0, x1), y1)) → A__TIMES(rcons(mark(x0), mark(x1)), mark(y1))
MARK(times(0, y1)) → A__TIMES(0, mark(y1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(times(nil, y1)) → A__TIMES(nil, mark(y1))
MARK(times(posrecip(x0), y1)) → A__TIMES(posrecip(mark(x0)), mark(y1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
QDP
                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(rcons(x0, x1), y1)) → A__TIMES(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(rnil, y1)) → A__TIMES(rnil, mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(times(posrecip(x0), y1)) → A__TIMES(posrecip(mark(x0)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(times(cons(x0, x1), y1)) → A__TIMES(cons(mark(x0), x1), mark(y1))
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(times(0, y1)) → A__TIMES(0, mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(times(nil, y1)) → A__TIMES(nil, mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(times(negrecip(x0), y1)) → A__TIMES(negrecip(mark(x0)), mark(y1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → MARK(X)
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
QDP
                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(square(X)) → MARK(X)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(square(x0), y1)) → A__2NDSPOS(a__square(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), rnil)) → A__2NDSPOS(a__square(mark(y0)), rnil)
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), nil)) → A__2NDSPOS(a__square(mark(y0)), nil)
MARK(2ndspos(square(y0), negrecip(x0))) → A__2NDSPOS(a__square(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), rcons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), 0)) → A__2NDSPOS(a__square(mark(y0)), 0)
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), s(x0))) → A__2NDSPOS(a__square(mark(y0)), s(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(square(y0), posrecip(x0))) → A__2NDSPOS(a__square(mark(y0)), posrecip(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
QDP
                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), nil)) → A__2NDSPOS(a__square(mark(y0)), nil)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), rcons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), negrecip(x0))) → A__2NDSPOS(a__square(mark(y0)), negrecip(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), s(x0))) → A__2NDSPOS(a__square(mark(y0)), s(mark(x0)))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndspos(square(y0), 0)) → A__2NDSPOS(a__square(mark(y0)), 0)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), posrecip(x0))) → A__2NDSPOS(a__square(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), rnil)) → A__2NDSPOS(a__square(mark(y0)), rnil)
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
QDP
                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(from(x0), y1)) → A__2NDSPOS(a__from(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(from(y0), posrecip(x0))) → A__2NDSPOS(a__from(mark(y0)), posrecip(mark(x0)))
MARK(2ndspos(from(y0), nil)) → A__2NDSPOS(a__from(mark(y0)), nil)
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), rcons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), s(x0))) → A__2NDSPOS(a__from(mark(y0)), s(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), negrecip(x0))) → A__2NDSPOS(a__from(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), 0)) → A__2NDSPOS(a__from(mark(y0)), 0)
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), rnil)) → A__2NDSPOS(a__from(mark(y0)), rnil)
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
QDP
                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), s(x0))) → A__2NDSPOS(a__from(mark(y0)), s(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(from(y0), 0)) → A__2NDSPOS(a__from(mark(y0)), 0)
MARK(2ndspos(from(y0), rnil)) → A__2NDSPOS(a__from(mark(y0)), rnil)
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), nil)) → A__2NDSPOS(a__from(mark(y0)), nil)
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(from(y0), posrecip(x0))) → A__2NDSPOS(a__from(mark(y0)), posrecip(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(2ndspos(from(y0), rcons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), negrecip(x0))) → A__2NDSPOS(a__from(mark(y0)), negrecip(mark(x0)))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(plus(X1, X2)) → MARK(X1)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
A__PI(X) → MARK(X)
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
QDP
                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(s(x0), y1)) → A__2NDSPOS(s(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(s(y0), rnil)) → A__2NDSPOS(s(mark(y0)), rnil)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), negrecip(x0))) → A__2NDSPOS(s(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), posrecip(x0))) → A__2NDSPOS(s(mark(y0)), posrecip(mark(x0)))
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), 0)) → A__2NDSPOS(s(mark(y0)), 0)
MARK(2ndspos(s(y0), rcons(x0, x1))) → A__2NDSPOS(s(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), s(x0))) → A__2NDSPOS(s(mark(y0)), s(mark(x0)))
MARK(2ndspos(s(y0), nil)) → A__2NDSPOS(s(mark(y0)), nil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
QDP
                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), negrecip(x0))) → A__2NDSPOS(s(mark(y0)), negrecip(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), s(x0))) → A__2NDSPOS(s(mark(y0)), s(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(s(y0), rnil)) → A__2NDSPOS(s(mark(y0)), rnil)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), rcons(x0, x1))) → A__2NDSPOS(s(mark(y0)), rcons(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), nil)) → A__2NDSPOS(s(mark(y0)), nil)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndspos(s(y0), posrecip(x0))) → A__2NDSPOS(s(mark(y0)), posrecip(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 0)) → A__2NDSPOS(s(mark(y0)), 0)
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
QDP
                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → MARK(X)
A__PI(X) → A__FROM(0)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(2ndsneg(x0, x1), y1)) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(2ndsneg(y0, y1), 0)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), 0)
MARK(2ndspos(2ndsneg(y0, y1), negrecip(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), nil)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), nil)
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), s(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), posrecip(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), rnil)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), rnil)
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
QDP
                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), posrecip(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), rnil)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), rnil)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndsneg(y0, y1), 0)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), 0)
MARK(2ndspos(2ndsneg(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), nil)) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), nil)
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndsneg(y0, y1), s(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndsneg(y0, y1), negrecip(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
QDP
                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(pi(x0), y1)) → A__2NDSPOS(a__pi(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(pi(y0), negrecip(x0))) → A__2NDSPOS(a__pi(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), posrecip(x0))) → A__2NDSPOS(a__pi(mark(y0)), posrecip(mark(x0)))
MARK(2ndspos(pi(y0), rnil)) → A__2NDSPOS(a__pi(mark(y0)), rnil)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), nil)) → A__2NDSPOS(a__pi(mark(y0)), nil)
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), rcons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), s(x0))) → A__2NDSPOS(a__pi(mark(y0)), s(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 0)) → A__2NDSPOS(a__pi(mark(y0)), 0)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
QDP
                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), posrecip(x0))) → A__2NDSPOS(a__pi(mark(y0)), posrecip(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), negrecip(x0))) → A__2NDSPOS(a__pi(mark(y0)), negrecip(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), rnil)) → A__2NDSPOS(a__pi(mark(y0)), rnil)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), s(x0))) → A__2NDSPOS(a__pi(mark(y0)), s(mark(x0)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 0)) → A__2NDSPOS(a__pi(mark(y0)), 0)
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(pi(y0), nil)) → A__2NDSPOS(a__pi(mark(y0)), nil)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), rcons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
QDP
                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(times(x0, x1), y1)) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(times(y0, y1), rnil)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), rnil)
MARK(2ndspos(times(y0, y1), posrecip(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), s(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(times(y0, y1), negrecip(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(times(y0, y1), 0)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), 0)
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), nil)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), nil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
QDP
                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(times(y0, y1), rnil)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), rnil)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), posrecip(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 0)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), 0)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), s(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), negrecip(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), nil)) → A__2NDSPOS(a__times(mark(y0), mark(y1)), nil)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
QDP
                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(2ndspos(x0, x1), y1)) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(2ndspos(y0, y1), negrecip(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), s(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), posrecip(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), 0)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), 0)
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), nil)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), nil)
MARK(2ndspos(2ndspos(y0, y1), rnil)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), rnil)
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
QDP
                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), negrecip(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 0)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), 0)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), s(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), rnil)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), rnil)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), posrecip(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), nil)) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), nil)
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndspos(plus(x0, x1), y1)) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), rnil)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), rnil)
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), posrecip(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), s(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(plus(y0, y1), nil)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), nil)
MARK(2ndspos(plus(y0, y1), 0)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), 0)
MARK(2ndspos(plus(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), negrecip(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
QDP
                                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(y0, y1), rnil)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), rnil)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), posrecip(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(plus(y0, y1), s(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(plus(y0, y1), nil)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), nil)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndspos(plus(y0, y1), rcons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(plus(y0, y1), negrecip(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 0)) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), 0)
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
QDP
                                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(square(x0), y1)) → A__2NDSNEG(a__square(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(square(y0), 0)) → A__2NDSNEG(a__square(mark(y0)), 0)
MARK(2ndsneg(square(y0), rcons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), negrecip(x0))) → A__2NDSNEG(a__square(mark(y0)), negrecip(mark(x0)))
MARK(2ndsneg(square(y0), nil)) → A__2NDSNEG(a__square(mark(y0)), nil)
MARK(2ndsneg(square(y0), s(x0))) → A__2NDSNEG(a__square(mark(y0)), s(mark(x0)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), posrecip(x0))) → A__2NDSNEG(a__square(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), rnil)) → A__2NDSNEG(a__square(mark(y0)), rnil)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
QDP
                                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), s(x0))) → A__2NDSNEG(a__square(mark(y0)), s(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(square(y0), 0)) → A__2NDSNEG(a__square(mark(y0)), 0)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(square(y0), negrecip(x0))) → A__2NDSNEG(a__square(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(square(y0), posrecip(x0))) → A__2NDSNEG(a__square(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), rnil)) → A__2NDSNEG(a__square(mark(y0)), rnil)
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), rcons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), nil)) → A__2NDSNEG(a__square(mark(y0)), nil)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(2ndspos(x0, x1), y1)) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 0)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), 0)
MARK(2ndsneg(2ndspos(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), s(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), nil)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), nil)
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), negrecip(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), rnil)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(2ndspos(y0, y1), posrecip(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
QDP
                                                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), posrecip(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(2ndspos(y0, y1), s(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), nil)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), nil)
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 0)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), 0)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(2ndspos(y0, y1), negrecip(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), rnil)) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rnil)
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
QDP
                                                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(plus(x0, x1), y1)) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(plus(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), 0)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), 0)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), rnil)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(plus(y0, y1), nil)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), nil)
MARK(2ndsneg(plus(y0, y1), s(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), posrecip(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), negrecip(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
QDP
                                                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(plus(y0, y1), nil)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), nil)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(plus(y0, y1), 0)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), 0)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(plus(y0, y1), posrecip(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), rnil)) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rnil)
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), s(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), s(mark(x0)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), negrecip(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(from(x0), y1)) → A__2NDSNEG(a__from(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(from(y0), rnil)) → A__2NDSNEG(a__from(mark(y0)), rnil)
MARK(2ndsneg(from(y0), nil)) → A__2NDSNEG(a__from(mark(y0)), nil)
MARK(2ndsneg(from(y0), s(x0))) → A__2NDSNEG(a__from(mark(y0)), s(mark(x0)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 0)) → A__2NDSNEG(a__from(mark(y0)), 0)
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), negrecip(x0))) → A__2NDSNEG(a__from(mark(y0)), negrecip(mark(x0)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), rcons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), posrecip(x0))) → A__2NDSNEG(a__from(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
QDP
                                                                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), nil)) → A__2NDSNEG(a__from(mark(y0)), nil)
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(from(y0), posrecip(x0))) → A__2NDSNEG(a__from(mark(y0)), posrecip(mark(x0)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(from(y0), s(x0))) → A__2NDSNEG(a__from(mark(y0)), s(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), 0)) → A__2NDSNEG(a__from(mark(y0)), 0)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), rcons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(from(y0), rnil)) → A__2NDSNEG(a__from(mark(y0)), rnil)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), negrecip(x0))) → A__2NDSNEG(a__from(mark(y0)), negrecip(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
QDP
                                                                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(times(x0, x1), y1)) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), rnil)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), s(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), nil)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), nil)
MARK(2ndsneg(times(y0, y1), posrecip(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), 0)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), 0)
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), negrecip(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
QDP
                                                                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(times(y0, y1), rnil)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 0)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), 0)
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(times(y0, y1), s(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), s(mark(x0)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(times(y0, y1), nil)) → A__2NDSNEG(a__times(mark(y0), mark(y1)), nil)
MARK(2ndsneg(times(y0, y1), posrecip(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), negrecip(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(2ndsneg(x0, x1), y1)) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(2ndsneg(y0, y1), rnil)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), nil)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), nil)
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), posrecip(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), negrecip(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), s(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), 0)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), 0)
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
QDP
                                                                                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), rnil)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rnil)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), posrecip(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(2ndsneg(y0, y1), rcons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), nil)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), nil)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), negrecip(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), s(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), 0)) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), 0)
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
QDP
                                                                                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(s(x0), y1)) → A__2NDSNEG(s(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(s(y0), s(x0))) → A__2NDSNEG(s(mark(y0)), s(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(s(y0), rcons(x0, x1))) → A__2NDSNEG(s(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), rnil)) → A__2NDSNEG(s(mark(y0)), rnil)
MARK(2ndsneg(s(y0), 0)) → A__2NDSNEG(s(mark(y0)), 0)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), negrecip(x0))) → A__2NDSNEG(s(mark(y0)), negrecip(mark(x0)))
MARK(2ndsneg(s(y0), posrecip(x0))) → A__2NDSNEG(s(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), nil)) → A__2NDSNEG(s(mark(y0)), nil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
QDP
                                                                                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), rcons(x0, x1))) → A__2NDSNEG(s(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(2ndsneg(s(y0), rnil)) → A__2NDSNEG(s(mark(y0)), rnil)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
MARK(2ndsneg(s(y0), nil)) → A__2NDSNEG(s(mark(y0)), nil)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), s(x0))) → A__2NDSNEG(s(mark(y0)), s(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), negrecip(x0))) → A__2NDSNEG(s(mark(y0)), negrecip(mark(x0)))
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(2ndsneg(s(y0), posrecip(x0))) → A__2NDSNEG(s(mark(y0)), posrecip(mark(x0)))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(s(y0), 0)) → A__2NDSNEG(s(mark(y0)), 0)
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                                                                                      ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule MARK(2ndsneg(pi(x0), y1)) → A__2NDSNEG(a__pi(mark(x0)), mark(y1)) at position [1] we obtained the following new rules:

MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), rcons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), rnil)) → A__2NDSNEG(a__pi(mark(y0)), rnil)
MARK(2ndsneg(pi(y0), negrecip(x0))) → A__2NDSNEG(a__pi(mark(y0)), negrecip(mark(x0)))
MARK(2ndsneg(pi(y0), posrecip(x0))) → A__2NDSNEG(a__pi(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(pi(y0), nil)) → A__2NDSNEG(a__pi(mark(y0)), nil)
MARK(2ndsneg(pi(y0), s(x0))) → A__2NDSNEG(a__pi(mark(y0)), s(mark(x0)))
MARK(2ndsneg(pi(y0), 0)) → A__2NDSNEG(a__pi(mark(y0)), 0)
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
QDP
                                                                                                                                                                          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), s(x0))) → A__2NDSNEG(a__pi(mark(y0)), s(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(pi(y0), posrecip(x0))) → A__2NDSNEG(a__pi(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), rnil)) → A__2NDSNEG(a__pi(mark(y0)), rnil)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), negrecip(x0))) → A__2NDSNEG(a__pi(mark(y0)), negrecip(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 0)) → A__2NDSNEG(a__pi(mark(y0)), 0)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(pi(y0), rcons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(from(X)) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(pi(y0), nil)) → A__2NDSNEG(a__pi(mark(y0)), nil)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
QDP
                                                                                                                                                                              ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__PLUS(s(X), Y) → A__PLUS(mark(X), mark(Y)) at position [0] we obtained the following new rules:

A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(rnil), y1) → A__PLUS(rnil, mark(y1))
A__PLUS(s(cons(x0, x1)), y1) → A__PLUS(cons(mark(x0), x1), mark(y1))
A__PLUS(s(posrecip(x0)), y1) → A__PLUS(posrecip(mark(x0)), mark(y1))
A__PLUS(s(negrecip(x0)), y1) → A__PLUS(negrecip(mark(x0)), mark(y1))
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
A__PLUS(s(nil), y1) → A__PLUS(nil, mark(y1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(rcons(x0, x1)), y1) → A__PLUS(rcons(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
QDP
                                                                                                                                                                                  ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
A__PLUS(s(rnil), y1) → A__PLUS(rnil, mark(y1))
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__PLUS(s(nil), y1) → A__PLUS(nil, mark(y1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(from(X)) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(posrecip(x0)), y1) → A__PLUS(posrecip(mark(x0)), mark(y1))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__PLUS(s(rcons(x0, x1)), y1) → A__PLUS(rcons(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(negrecip(x0)), y1) → A__PLUS(negrecip(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(cons(x0, x1)), y1) → A__PLUS(cons(mark(x0), x1), mark(y1))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 6 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
QDP
                                                                                                                                                                                      ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(from(X)) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → A__FROM(0)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndsneg(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), square(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(times(2ndsneg(x0, x1), y1)) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), square(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(from(y0), cons(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(2ndspos(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), from(x0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(from(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), pi(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(times(2ndspos(x0, x1), y1)) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(from(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), from(x0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(from(y0), pi(x0))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), times(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), square(x0))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
MARK(times(from(x0), y1)) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(from(y0), plus(x0, x1))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(from(y0), from(x0))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
The remaining pairs can at least be oriented weakly.

MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(from(X)) → MARK(X)
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → A__FROM(0)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → MARK(X)
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x1   
POL(A__2NDSPOS(x1, x2)) = 1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = x1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = x1   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 0   
POL(pi(x1)) = x1   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 1   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
QDP
                                                                                                                                                                                          ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PI(X) → A__FROM(0)
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


A__PLUS(s(pi(x0)), y1) → A__PLUS(a__pi(mark(x0)), mark(y1))
MARK(plus(2ndsneg(x0, x1), y1)) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(2ndsneg(x0, x1)), y1) → A__PLUS(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(2ndspos(x0, x1)), y1) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(plus(2ndspos(x0, x1), y1)) → A__PLUS(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(plus(pi(x0), y1)) → A__PLUS(a__pi(mark(x0)), mark(y1))
A__PLUS(s(from(x0)), y1) → A__PLUS(a__from(mark(x0)), mark(y1))
MARK(plus(from(x0), y1)) → A__PLUS(a__from(mark(x0)), mark(y1))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(square(X)) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__FROM(X) → MARK(X)
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = 1   
POL(A__2NDSPOS(x1, x2)) = 1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = x1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 1   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
QDP
                                                                                                                                                                                              ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(2ndsneg(y0, y1), from(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(square(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 2ndspos(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), square(x0))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), pi(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(2ndspos(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), 2ndspos(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), square(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(s(y0), 2ndsneg(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndsneg(y0, y1), times(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(2ndspos(y0, y1), from(x0))) → A__2NDSPOS(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(2ndsneg(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x2   
POL(A__2NDSPOS(x1, x2)) = x1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 1   
POL(a__pi(x1)) = 1   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 1   
POL(from(x1)) = 1   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = x1   
POL(nil) = 1   
POL(pi(x1)) = 1   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
QDP
                                                                                                                                                                                                  ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(from(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), pi(x0))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), pi(x0))) → A__2NDSPOS(a__from(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), pi(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), pi(x0))) → A__2NDSPOS(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(pi(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), pi(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(plus(y0, y1), pi(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(square(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndspos(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), 2ndsneg(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), pi(x0))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), pi(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), 2ndspos(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), pi(x0))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(pi(y0), pi(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
MARK(2ndspos(times(y0, y1), 2ndsneg(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), pi(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(from(y0), 2ndspos(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x2   
POL(A__2NDSPOS(x1, x2)) = x2   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 1   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 1   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 1   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 0   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 1   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
QDP
                                                                                                                                                                                                      ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndsneg(pi(y0), from(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(pi(y0), plus(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(pi(y0), cons(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(times(pi(x0), y1)) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(pi(y0), square(x0))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(pi(y0), times(x0, x1))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x1   
POL(A__2NDSPOS(x1, x2)) = 1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = x1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = x2   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = x1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = x1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 1   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 1   
POL(times(x1, x2)) = x1   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
QDP
                                                                                                                                                                                                          ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(pi(y0), from(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(pi(y0), cons(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(pi(y0), plus(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), times(x0, x1))) → A__2NDSPOS(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(pi(y0), square(x0))) → A__2NDSPOS(a__pi(mark(y0)), a__square(mark(x0)))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(2ndsneg(x1, x2)) = 1   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = 1   
POL(A__2NDSPOS(x1, x2)) = x1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 1   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 1   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = x1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
QDP
                                                                                                                                                                                                              ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


MARK(2ndspos(from(y0), from(x0))) → A__2NDSPOS(a__from(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(from(y0), cons(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(from(y0), square(x0))) → A__2NDSPOS(a__from(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(from(y0), times(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(from(y0), plus(x0, x1))) → A__2NDSPOS(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = 1   
POL(A__2NDSPOS(x1, x2)) = x1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = x1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 1   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = x2   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 1   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
QDP
                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(X), Y) → MARK(Y)
MARK(square(X)) → MARK(X)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(times(X1, X2)) → MARK(X1)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(plus(X1, X2)) → MARK(X1)
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → A__2NDSPOS(mark(N), mark(Z)) at position [0] we obtained the following new rules:

A__2NDSNEG(s(cons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(cons(mark(x0), x1), mark(y3))
A__2NDSNEG(s(rcons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(rcons(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(0), cons(y1, cons(y2, y3))) → A__2NDSPOS(0, mark(y3))
A__2NDSNEG(s(rnil), cons(y1, cons(y2, y3))) → A__2NDSPOS(rnil, mark(y3))
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(posrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(posrecip(mark(x0)), mark(y3))
A__2NDSNEG(s(negrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(negrecip(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(nil), cons(y1, cons(y2, y3))) → A__2NDSPOS(nil, mark(y3))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(posrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(posrecip(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(cons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(cons(mark(x0), x1), mark(y3))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(rnil), cons(y1, cons(y2, y3))) → A__2NDSPOS(rnil, mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSNEG(s(rcons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(rcons(mark(x0), mark(x1)), mark(y3))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(negrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(negrecip(mark(x0)), mark(y3))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSNEG(s(0), cons(y1, cons(y2, y3))) → A__2NDSPOS(0, mark(y3))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(nil), cons(y1, cons(y2, y3))) → A__2NDSPOS(nil, mark(y3))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__TIMES(s(X), Y) → A__TIMES(mark(X), mark(Y)) at position [0] we obtained the following new rules:

A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__TIMES(s(nil), y1) → A__TIMES(nil, mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(pi(x0)), y1) → A__TIMES(a__pi(mark(x0)), mark(y1))
A__TIMES(s(2ndsneg(x0, x1)), y1) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(0), y1) → A__TIMES(0, mark(y1))
A__TIMES(s(2ndspos(x0, x1)), y1) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(from(x0)), y1) → A__TIMES(a__from(mark(x0)), mark(y1))
A__TIMES(s(rcons(x0, x1)), y1) → A__TIMES(rcons(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(posrecip(x0)), y1) → A__TIMES(posrecip(mark(x0)), mark(y1))
A__TIMES(s(cons(x0, x1)), y1) → A__TIMES(cons(mark(x0), x1), mark(y1))
A__TIMES(s(negrecip(x0)), y1) → A__TIMES(negrecip(mark(x0)), mark(y1))
A__TIMES(s(rnil), y1) → A__TIMES(rnil, mark(y1))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(rcons(x0, x1)), y1) → A__TIMES(rcons(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(rnil), y1) → A__TIMES(rnil, mark(y1))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__TIMES(s(from(x0)), y1) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(negrecip(x0)), y1) → A__TIMES(negrecip(mark(x0)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__TIMES(s(2ndsneg(x0, x1)), y1) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
A__TIMES(s(0), y1) → A__TIMES(0, mark(y1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
A__TIMES(s(nil), y1) → A__TIMES(nil, mark(y1))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(posrecip(x0)), y1) → A__TIMES(posrecip(mark(x0)), mark(y1))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__TIMES(s(2ndspos(x0, x1)), y1) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(pi(x0)), y1) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__TIMES(s(cons(x0, x1)), y1) → A__TIMES(cons(mark(x0), x1), mark(y1))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__TIMES(s(from(x0)), y1) → A__TIMES(a__from(mark(x0)), mark(y1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__TIMES(s(2ndsneg(x0, x1)), y1) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__TIMES(s(2ndspos(x0, x1)), y1) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(pi(x0)), y1) → A__TIMES(a__pi(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


A__TIMES(s(from(x0)), y1) → A__TIMES(a__from(mark(x0)), mark(y1))
A__TIMES(s(2ndsneg(x0, x1)), y1) → A__TIMES(a__2ndsneg(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(2ndspos(x0, x1)), y1) → A__TIMES(a__2ndspos(mark(x0), mark(x1)), mark(y1))
A__TIMES(s(pi(x0)), y1) → A__TIMES(a__pi(mark(x0)), mark(y1))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
Used ordering: Polynomial interpretation [25]:

POL(0) = 0   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x1   
POL(A__2NDSPOS(x1, x2)) = 1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = x1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = 1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = x1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 1   
POL(nil) = 1   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 1   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 1   
POL(times(x1, x2)) = x1   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


A__2NDSNEG(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndspos(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__from(mark(x0)), mark(y3))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = 1   
POL(A__2NDSPOS(x1, x2)) = x1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 0   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = x1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 0   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 0   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = 0   
POL(posrecip(x1)) = 0   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 1   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
QDP
                                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSNEG(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__square(mark(x0)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, rnil))) → A__2NDSPOS(a__square(mark(y0)), rnil)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, nil))) → A__2NDSPOS(a__square(mark(y0)), nil)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSPOS(a__square(mark(y0)), negrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSPOS(a__square(mark(y0)), s(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSPOS(a__square(mark(y0)), posrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 0))) → A__2NDSPOS(a__square(mark(y0)), 0)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSPOS(a__square(mark(y0)), posrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 0))) → A__2NDSPOS(a__square(mark(y0)), 0)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, nil))) → A__2NDSPOS(a__square(mark(y0)), nil)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, rnil))) → A__2NDSPOS(a__square(mark(y0)), rnil)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSPOS(a__square(mark(y0)), negrecip(mark(x0)))
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSPOS(a__square(mark(y0)), s(mark(x0)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → A__2NDSNEG(mark(N), mark(Z)) at position [0] we obtained the following new rules:

A__2NDSPOS(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(s(mark(x0)), mark(y3))
A__2NDSPOS(s(0), cons(y1, cons(y2, y3))) → A__2NDSNEG(0, mark(y3))
A__2NDSPOS(s(posrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(posrecip(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(rnil), cons(y1, cons(y2, y3))) → A__2NDSNEG(rnil, mark(y3))
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(cons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(cons(mark(x0), x1), mark(y3))
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(nil), cons(y1, cons(y2, y3))) → A__2NDSNEG(nil, mark(y3))
A__2NDSPOS(s(rcons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(rcons(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
A__2NDSPOS(s(negrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(negrecip(mark(x0)), mark(y3))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(0), cons(y1, cons(y2, y3))) → A__2NDSNEG(0, mark(y3))
A__2NDSPOS(s(cons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(cons(mark(x0), x1), mark(y3))
A__2NDSPOS(s(rnil), cons(y1, cons(y2, y3))) → A__2NDSNEG(rnil, mark(y3))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSPOS(s(negrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(negrecip(mark(x0)), mark(y3))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(s(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSPOS(s(nil), cons(y1, cons(y2, y3))) → A__2NDSNEG(nil, mark(y3))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(rcons(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(rcons(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(posrecip(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(posrecip(mark(x0)), mark(y3))
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(s(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(s(mark(x0)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(s(mark(y0)), 0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(s(mark(y0)), negrecip(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(s(mark(y0)), rnil)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(s(mark(y0)), s(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(s(mark(y0)), nil)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(s(mark(y0)), posrecip(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(s(mark(y0)), s(mark(x0)))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(s(mark(y0)), 0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(s(mark(y0)), negrecip(mark(x0)))
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(s(mark(y0)), rnil)
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(s(mark(y0)), nil)
MARK(negrecip(X)) → MARK(X)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(s(mark(y0)), posrecip(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(2ndsneg(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndsneg(mark(x0), mark(x1)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rnil)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rnil)
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), 0)
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), s(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__times(mark(x0), mark(x1)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rnil)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), nil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), negrecip(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rnil)
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), s(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(2ndspos(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__2ndspos(mark(x0), mark(x1)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rnil)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rnil)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), posrecip(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), nil)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(from(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__from(mark(x0)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__from(mark(y0)), negrecip(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__from(mark(y0)), nil)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__from(mark(y0)), rnil)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__from(mark(y0)), 0)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__from(mark(y0)), posrecip(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__from(mark(y0)), s(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__from(mark(y0)), s(mark(x0)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__from(mark(y0)), negrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__from(mark(y0)), nil)
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__from(mark(y0)), 0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__from(mark(y0)), posrecip(mark(x0)))
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__from(mark(y0)), rnil)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(square(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__square(mark(x0)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__square(mark(y0)), negrecip(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__square(mark(y0)), 0)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__square(mark(y0)), rnil)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__square(mark(y0)), s(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__square(mark(y0)), nil)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__square(mark(y0)), posrecip(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__square(mark(y0)), s(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__square(mark(y0)), 0)
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__square(mark(y0)), nil)
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__square(mark(y0)), posrecip(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__square(mark(y0)), negrecip(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__square(mark(y0)), rnil)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__plus(mark(x0), mark(x1)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), 0)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rnil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, nil))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), nil)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, s(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), s(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), 0)
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, negrecip(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), negrecip(mark(x0)))
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, rnil))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rnil)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, rcons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), rcons(mark(x0), mark(x1)))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, posrecip(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), posrecip(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                                                  ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule A__2NDSPOS(s(pi(x0)), cons(y1, cons(y2, y3))) → A__2NDSNEG(a__pi(mark(x0)), mark(y3)) at position [1] we obtained the following new rules:

A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__pi(mark(y0)), nil)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__pi(mark(y0)), s(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__pi(mark(y0)), negrecip(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__pi(mark(y0)), posrecip(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__pi(mark(y0)), 0)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__pi(mark(y0)), rnil)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                                  ↳ Narrowing
QDP
                                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, s(x0)))) → A__2NDSNEG(a__pi(mark(y0)), s(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 0))) → A__2NDSNEG(a__pi(mark(y0)), 0)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, rnil))) → A__2NDSNEG(a__pi(mark(y0)), rnil)
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(from(X)) → A__FROM(mark(X))
A__PI(X) → A__FROM(0)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
A__PI(X) → MARK(X)
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, posrecip(x0)))) → A__2NDSNEG(a__pi(mark(y0)), posrecip(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, rcons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), rcons(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, nil))) → A__2NDSNEG(a__pi(mark(y0)), nil)
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, negrecip(x0)))) → A__2NDSNEG(a__pi(mark(y0)), negrecip(mark(x0)))
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 7 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
QDP
                                                                                                                                                                                                                                                                                                                          ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(square(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(s(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, pi(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__pi(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, 2ndsneg(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, 2ndspos(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__2ndspos(mark(x0), mark(x1)))
The remaining pairs can at least be oriented weakly.

MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(2ndspos(X1, X2)) → MARK(X1)
MARK(s(X)) → MARK(X)
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(pi(X)) → A__PI(mark(X))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
MARK(rcons(X1, X2)) → MARK(X2)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__SQUARE(X) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(negrecip(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(2ndsneg(x1, x2)) = 0   
POL(2ndspos(x1, x2)) = 0   
POL(A__2NDSNEG(x1, x2)) = x2   
POL(A__2NDSPOS(x1, x2)) = 1   
POL(A__FROM(x1)) = 1   
POL(A__PI(x1)) = 1   
POL(A__PLUS(x1, x2)) = 1   
POL(A__SQUARE(x1)) = 1   
POL(A__TIMES(x1, x2)) = 1   
POL(MARK(x1)) = 1   
POL(a__2ndsneg(x1, x2)) = 0   
POL(a__2ndspos(x1, x2)) = 0   
POL(a__from(x1)) = 1   
POL(a__pi(x1)) = 0   
POL(a__plus(x1, x2)) = x1   
POL(a__square(x1)) = 1   
POL(a__times(x1, x2)) = 1   
POL(cons(x1, x2)) = 1   
POL(from(x1)) = 0   
POL(mark(x1)) = 1   
POL(negrecip(x1)) = 0   
POL(nil) = 1   
POL(pi(x1)) = 0   
POL(plus(x1, x2)) = x1   
POL(posrecip(x1)) = x1   
POL(rcons(x1, x2)) = 0   
POL(rnil) = 0   
POL(s(x1)) = 0   
POL(square(x1)) = 0   
POL(times(x1, x2)) = 0   

The following usable rules [17] were oriented:

a__2ndspos(0, Z) → rnil
a__from(X) → cons(mark(X), from(s(X)))
a__times(0, Y) → 0
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__plus(0, Y) → mark(Y)
mark(square(X)) → a__square(mark(X))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
a__square(X) → a__times(mark(X), mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(from(X)) → a__from(mark(X))
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
mark(rnil) → rnil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(nil) → nil
mark(negrecip(X)) → negrecip(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(s(X)) → s(mark(X))
mark(0) → 0
a__square(X) → square(X)
a__times(X1, X2) → times(X1, X2)
a__plus(X1, X2) → plus(X1, X2)
a__pi(X) → pi(X)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__from(X) → from(X)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ Narrowing
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ QDP
              ↳ Narrowing
                ↳ QDP
                  ↳ DependencyGraphProof
                    ↳ QDP
                      ↳ Narrowing
                        ↳ QDP
                          ↳ DependencyGraphProof
                            ↳ QDP
                              ↳ Narrowing
                                ↳ QDP
                                  ↳ DependencyGraphProof
                                    ↳ QDP
                                      ↳ Narrowing
                                        ↳ QDP
                                          ↳ DependencyGraphProof
                                            ↳ QDP
                                              ↳ Narrowing
                                                ↳ QDP
                                                  ↳ DependencyGraphProof
                                                    ↳ QDP
                                                      ↳ Narrowing
                                                        ↳ QDP
                                                          ↳ DependencyGraphProof
                                                            ↳ QDP
                                                              ↳ Narrowing
                                                                ↳ QDP
                                                                  ↳ DependencyGraphProof
                                                                    ↳ QDP
                                                                      ↳ Narrowing
                                                                        ↳ QDP
                                                                          ↳ DependencyGraphProof
                                                                            ↳ QDP
                                                                              ↳ Narrowing
                                                                                ↳ QDP
                                                                                  ↳ DependencyGraphProof
                                                                                    ↳ QDP
                                                                                      ↳ Narrowing
                                                                                        ↳ QDP
                                                                                          ↳ DependencyGraphProof
                                                                                            ↳ QDP
                                                                                              ↳ Narrowing
                                                                                                ↳ QDP
                                                                                                  ↳ DependencyGraphProof
                                                                                                    ↳ QDP
                                                                                                      ↳ Narrowing
                                                                                                        ↳ QDP
                                                                                                          ↳ DependencyGraphProof
                                                                                                            ↳ QDP
                                                                                                              ↳ Narrowing
                                                                                                                ↳ QDP
                                                                                                                  ↳ DependencyGraphProof
                                                                                                                    ↳ QDP
                                                                                                                      ↳ Narrowing
                                                                                                                        ↳ QDP
                                                                                                                          ↳ DependencyGraphProof
                                                                                                                            ↳ QDP
                                                                                                                              ↳ Narrowing
                                                                                                                                ↳ QDP
                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                    ↳ QDP
                                                                                                                                      ↳ Narrowing
                                                                                                                                        ↳ QDP
                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                            ↳ QDP
                                                                                                                                              ↳ Narrowing
                                                                                                                                                ↳ QDP
                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                    ↳ QDP
                                                                                                                                                      ↳ Narrowing
                                                                                                                                                        ↳ QDP
                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                            ↳ QDP
                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                ↳ QDP
                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                    ↳ QDP
                                                                                                                                                                      ↳ Narrowing
                                                                                                                                                                        ↳ QDP
                                                                                                                                                                          ↳ DependencyGraphProof
                                                                                                                                                                            ↳ QDP
                                                                                                                                                                              ↳ Narrowing
                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                  ↳ DependencyGraphProof
                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                          ↳ QDPOrderProof
                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                              ↳ QDPOrderProof
                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                  ↳ QDPOrderProof
                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                      ↳ QDPOrderProof
                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                          ↳ Narrowing
                                                                                                                                                                                                                                                                                                            ↳ QDP
                                                                                                                                                                                                                                                                                                              ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                                ↳ QDP
                                                                                                                                                                                                                                                                                                                  ↳ Narrowing
                                                                                                                                                                                                                                                                                                                    ↳ QDP
                                                                                                                                                                                                                                                                                                                      ↳ DependencyGraphProof
                                                                                                                                                                                                                                                                                                                        ↳ QDP
                                                                                                                                                                                                                                                                                                                          ↳ QDPOrderProof
QDP

Q DP problem:
The TRS P consists of the following rules:

MARK(2ndspos(square(y0), plus(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), square(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(s(y0), square(x0))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
MARK(2ndspos(X1, X2)) → MARK(X2)
MARK(times(times(x0, x1), y1)) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, pi(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__pi(mark(x0)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(N)
MARK(plus(plus(x0, x1), y1)) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), from(x0))) → A__2NDSPOS(s(mark(y0)), a__from(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(Y)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), times(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), times(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(X), Y) → A__PLUS(mark(Y), a__times(mark(X), mark(Y)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
MARK(plus(square(x0), y1)) → A__PLUS(a__square(mark(x0)), mark(y1))
MARK(plus(s(x0), y1)) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndspos(square(y0), cons(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndspos(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndspos(mark(x0), mark(x1)))
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(s(X)) → MARK(X)
MARK(2ndspos(X1, X2)) → MARK(X1)
A__PLUS(s(square(x0)), y1) → A__PLUS(a__square(mark(x0)), mark(y1))
A__TIMES(s(square(x0)), y1) → A__TIMES(a__square(mark(x0)), mark(y1))
MARK(2ndsneg(square(y0), plus(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(2ndsneg(plus(y0, y1), square(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(N)
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(pi(X)) → MARK(X)
MARK(2ndsneg(s(y0), from(x0))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
MARK(plus(X1, X2)) → MARK(X2)
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(pi(X)) → A__PI(mark(X))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Y)
MARK(2ndspos(plus(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(square(y0), times(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), square(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndsneg(times(y0, y1), from(x0))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(s(mark(y0)), a__from(mark(x0)))
A__2NDSNEG(s(plus(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__plus(mark(x0), mark(x1)), mark(y3))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__square(mark(x0)))
MARK(2ndsneg(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), from(x0))) → A__2NDSNEG(a__square(mark(y0)), a__from(mark(x0)))
A__TIMES(s(times(x0, x1)), y1) → A__TIMES(a__times(mark(x0), mark(x1)), mark(y1))
MARK(2ndspos(times(y0, y1), square(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(2ndspos(square(y0), times(x0, x1))) → A__2NDSPOS(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(s(y0), cons(x0, x1))) → A__2NDSNEG(s(mark(y0)), cons(mark(x0), x1))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(times(square(x0), y1)) → A__TIMES(a__square(mark(x0)), mark(y1))
A__PI(X) → A__FROM(0)
MARK(from(X)) → A__FROM(mark(X))
MARK(2ndspos(s(y0), plus(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(plus(X1, X2)) → MARK(X1)
A__2NDSNEG(s(N), cons(X, cons(Y, Z))) → MARK(Y)
A__PI(X) → MARK(X)
MARK(2ndspos(s(y0), cons(x0, x1))) → A__2NDSPOS(s(mark(y0)), cons(mark(x0), x1))
MARK(times(s(x0), y1)) → A__TIMES(s(mark(x0)), mark(y1))
MARK(2ndsneg(plus(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), cons(mark(x0), x1))
A__PLUS(s(X), Y) → MARK(Y)
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__square(mark(x0)))
A__TIMES(s(X), Y) → MARK(X)
A__2NDSNEG(s(times(x0, x1)), cons(y1, cons(y2, y3))) → A__2NDSPOS(a__times(mark(x0), mark(x1)), mark(y3))
A__TIMES(s(s(x0)), y1) → A__TIMES(s(mark(x0)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSPOS(s(N), cons(X, cons(Y, Z))) → MARK(Z)
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, square(x0)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__square(mark(x0)))
MARK(cons(X1, X2)) → MARK(X1)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), from(x0))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), cons(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(X1, X2)) → MARK(X2)
MARK(2ndsneg(square(y0), cons(x0, x1))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(plus(y0, y1), times(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(times(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, from(x0)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__from(mark(x0)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__from(mark(y0)), cons(mark(x0), x1))
MARK(2ndspos(s(y0), times(x0, x1))) → A__2NDSPOS(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, cons(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), cons(mark(x0), x1))
MARK(2ndsneg(X1, X2)) → MARK(X1)
MARK(2ndsneg(square(y0), square(x0))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X1)
MARK(square(X)) → MARK(X)
A__FROM(X) → MARK(X)
A__2NDSPOS(s(2ndsneg(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__2ndsneg(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(times(plus(x0, x1), y1)) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(2ndsneg(s(y0), plus(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, 2ndsneg(x0, x1)))) → A__2NDSPOS(a__square(mark(y0)), a__2ndsneg(mark(x0), mark(x1)))
A__2NDSPOS(s(s(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__plus(mark(x0), mark(x1)))
MARK(rcons(X1, X2)) → MARK(X2)
MARK(2ndspos(s(y0), square(x0))) → A__2NDSPOS(s(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(plus(y0, y1)), cons(y2, cons(y3, plus(x0, x1)))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, square(x0)))) → A__2NDSNEG(a__square(mark(y0)), a__square(mark(x0)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, plus(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(X), Y) → MARK(X)
MARK(times(X1, X2)) → MARK(X1)
A__TIMES(s(plus(x0, x1)), y1) → A__TIMES(a__plus(mark(x0), mark(x1)), mark(y1))
MARK(plus(times(x0, x1), y1)) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__pi(mark(y0)), a__times(mark(x0), mark(x1)))
A__SQUARE(X) → MARK(X)
MARK(negrecip(X)) → MARK(X)
A__2NDSPOS(s(pi(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__pi(mark(y0)), a__from(mark(x0)))
A__PLUS(0, Y) → MARK(Y)
MARK(posrecip(X)) → MARK(X)
MARK(2ndspos(square(y0), from(x0))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(2ndspos(times(y0, y1), from(x0))) → A__2NDSPOS(a__times(mark(y0), mark(y1)), a__from(mark(x0)))
A__PLUS(s(times(x0, x1)), y1) → A__PLUS(a__times(mark(x0), mark(x1)), mark(y1))
A__PLUS(s(0), y1) → A__PLUS(0, mark(y1))
MARK(plus(0, y1)) → A__PLUS(0, mark(y1))
MARK(from(X)) → MARK(X)
MARK(2ndsneg(s(y0), times(x0, x1))) → A__2NDSNEG(s(mark(y0)), a__times(mark(x0), mark(x1)))
MARK(2ndspos(square(y0), square(x0))) → A__2NDSPOS(a__square(mark(y0)), a__square(mark(x0)))
A__SQUARE(X) → A__TIMES(mark(X), mark(X))
A__PLUS(s(plus(x0, x1)), y1) → A__PLUS(a__plus(mark(x0), mark(x1)), mark(y1))
A__2NDSPOS(s(2ndspos(y0, y1)), cons(y2, cons(y3, times(x0, x1)))) → A__2NDSNEG(a__2ndspos(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(times(y0, y1)), cons(y2, cons(y3, cons(x0, x1)))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
MARK(2ndsneg(plus(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__2NDSNEG(s(square(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSPOS(a__square(mark(y0)), a__from(mark(x0)))
MARK(square(X)) → A__SQUARE(mark(X))
MARK(2ndspos(plus(y0, y1), from(x0))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__from(mark(x0)))
MARK(2ndsneg(plus(y0, y1), times(x0, x1))) → A__2NDSNEG(a__plus(mark(y0), mark(y1)), a__times(mark(x0), mark(x1)))
MARK(2ndsneg(times(y0, y1), plus(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
MARK(2ndspos(plus(y0, y1), plus(x0, x1))) → A__2NDSPOS(a__plus(mark(y0), mark(y1)), a__plus(mark(x0), mark(x1)))
A__PLUS(s(s(x0)), y1) → A__PLUS(s(mark(x0)), mark(y1))
MARK(2ndsneg(times(y0, y1), cons(x0, x1))) → A__2NDSNEG(a__times(mark(y0), mark(y1)), cons(mark(x0), x1))
A__2NDSNEG(s(s(x0)), cons(y1, cons(y2, y3))) → A__2NDSPOS(s(mark(x0)), mark(y3))
A__2NDSPOS(s(square(y0)), cons(y1, cons(y2, times(x0, x1)))) → A__2NDSNEG(a__square(mark(y0)), a__times(mark(x0), mark(x1)))
A__2NDSPOS(s(from(y0)), cons(y1, cons(y2, from(x0)))) → A__2NDSNEG(a__from(mark(y0)), a__from(mark(x0)))

The TRS R consists of the following rules:

a__from(X) → cons(mark(X), from(s(X)))
a__2ndspos(0, Z) → rnil
a__2ndspos(s(N), cons(X, cons(Y, Z))) → rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z)))
a__2ndsneg(0, Z) → rnil
a__2ndsneg(s(N), cons(X, cons(Y, Z))) → rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z)))
a__pi(X) → a__2ndspos(mark(X), a__from(0))
a__plus(0, Y) → mark(Y)
a__plus(s(X), Y) → s(a__plus(mark(X), mark(Y)))
a__times(0, Y) → 0
a__times(s(X), Y) → a__plus(mark(Y), a__times(mark(X), mark(Y)))
a__square(X) → a__times(mark(X), mark(X))
mark(from(X)) → a__from(mark(X))
mark(2ndspos(X1, X2)) → a__2ndspos(mark(X1), mark(X2))
mark(2ndsneg(X1, X2)) → a__2ndsneg(mark(X1), mark(X2))
mark(pi(X)) → a__pi(mark(X))
mark(plus(X1, X2)) → a__plus(mark(X1), mark(X2))
mark(times(X1, X2)) → a__times(mark(X1), mark(X2))
mark(square(X)) → a__square(mark(X))
mark(0) → 0
mark(s(X)) → s(mark(X))
mark(posrecip(X)) → posrecip(mark(X))
mark(negrecip(X)) → negrecip(mark(X))
mark(nil) → nil
mark(cons(X1, X2)) → cons(mark(X1), X2)
mark(rnil) → rnil
mark(rcons(X1, X2)) → rcons(mark(X1), mark(X2))
a__from(X) → from(X)
a__2ndspos(X1, X2) → 2ndspos(X1, X2)
a__2ndsneg(X1, X2) → 2ndsneg(X1, X2)
a__pi(X) → pi(X)
a__plus(X1, X2) → plus(X1, X2)
a__times(X1, X2) → times(X1, X2)
a__square(X) → square(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.